package com.ruoyi.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单信息对象 order
 * 
 * @author jack
 * @date 2025-01-13
 */
public class Order extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    private Long id;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderSn;

    /** 订单当前描述 */
    @Excel(name = "订单当前描述")
    private String orderMessage;

    /** 对应业务信息ID */
    @Excel(name = "对应业务信息ID")
    private Long businessId;

    /** 对应业务类型 */
    @Excel(name = "对应业务类型")
    private String businessType;

    /** 对应用户 */
    @Excel(name = "对应用户")
    private Long userId;

    /** 对应地址 */
    @Excel(name = "对应地址")
    private Long addressId;

    /** 服务人员ID */
    @Excel(name = "服务人员ID")
    private Long serivcePersonId;

    /** 预约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;

    /** 预约备注 */
    @Excel(name = "预约备注")
    private String orderContent;

    /** 预约人联系方式 */
    @Excel(name = "预约人联系方式")
    private String orderPhone;

    // 订单价格
    private Double orderPrice;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String orderStatus;

    /** 接单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "接单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date receiveTime;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date doneTime;

    /** 逻辑删除 */
    private Integer delFlag;

    // 地址信息
    private UserAddress addressDetail;
    // 业务信息
    private Object businessDetail;
    // 服务人员信息
    private ServicePeople servicePersonDetail;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setOrderSn(String orderSn) 
    {
        this.orderSn = orderSn;
    }

    public String getOrderSn() 
    {
        return orderSn;
    }
    public void setOrderMessage(String orderMessage) 
    {
        this.orderMessage = orderMessage;
    }

    public String getOrderMessage() 
    {
        return orderMessage;
    }
    public void setBusinessId(Long businessId) 
    {
        this.businessId = businessId;
    }

    public Long getBusinessId() 
    {
        return businessId;
    }
    public void setBusinessType(String businessType) 
    {
        this.businessType = businessType;
    }

    public String getBusinessType() 
    {
        return businessType;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setAddressId(Long addressId) 
    {
        this.addressId = addressId;
    }

    public Long getAddressId() 
    {
        return addressId;
    }
    public void setSerivcePersonId(Long serivcePersonId) 
    {
        this.serivcePersonId = serivcePersonId;
    }

    public Long getSerivcePersonId() 
    {
        return serivcePersonId;
    }
    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }
    public void setOrderContent(String orderContent) 
    {
        this.orderContent = orderContent;
    }

    public String getOrderContent() 
    {
        return orderContent;
    }
    public void setOrderPhone(String orderPhone) 
    {
        this.orderPhone = orderPhone;
    }

    public String getOrderPhone() 
    {
        return orderPhone;
    }
    public void setOrderStatus(String orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public Double getOrderPrice() {
        return orderPrice;
    }

    public void setOrderPrice(Double orderPrice) {
        this.orderPrice = orderPrice;
    }

    public String getOrderStatus()
    {
        return orderStatus;
    }
    public void setReceiveTime(Date receiveTime) 
    {
        this.receiveTime = receiveTime;
    }

    public Date getReceiveTime() 
    {
        return receiveTime;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }
    public void setDoneTime(Date doneTime) 
    {
        this.doneTime = doneTime;
    }

    public Date getDoneTime() 
    {
        return doneTime;
    }
    public void setDelFlag(Integer delFlag) 
    {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() 
    {
        return delFlag;
    }

    public UserAddress getAddressDetail() {
        return addressDetail;
    }

    public void setAddressDetail(UserAddress addressDetail) {
        this.addressDetail = addressDetail;
    }

    public Object getBusinessDetail() {
        return businessDetail;
    }

    public void setBusinessDetail(Object businessDetail) {
        this.businessDetail = businessDetail;
    }

    public ServicePeople getServicePersonDetail() {
        return servicePersonDetail;
    }

    public void setServicePersonDetail(ServicePeople servicePersonDetail) {
        this.servicePersonDetail = servicePersonDetail;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderSn", getOrderSn())
            .append("orderMessage", getOrderMessage())
            .append("businessId", getBusinessId())
            .append("businessType", getBusinessType())
            .append("userId", getUserId())
            .append("addressId", getAddressId())
            .append("serivcePersonId", getSerivcePersonId())
            .append("orderTime", getOrderTime())
            .append("orderContent", getOrderContent())
            .append("orderPhone", getOrderPhone())
            .append("orderStatus", getOrderStatus())
            .append("receiveTime", getReceiveTime())
            .append("payTime", getPayTime())
            .append("doneTime", getDoneTime())
            .append("createTime", getCreateTime())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
